package com.qys.livesMall.app.user.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class WithdrawalsStatisticsVO {

    private String id;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "店铺名称")
    private String shopName;

    @Schema(description = "用户UID")
    private String userRandomId;

    @Schema(description = "代理名称")
    private String agentName;

    @Schema(description = "会员层级")
    private String storey;

    @Schema(description = "提现金额")
    private BigDecimal withdrawal;

    @Schema(description = "提现前金额")
    private BigDecimal preWithdrawal;

    @Schema(description = "通道名称")
    private String channelName;

    @Schema(description = "直推人数")
    private Integer directNumber;

    @Schema(description = "伞下人数")
    private Integer twoNumber;

    @Schema(description = "3代人数")
    private Integer threeNumber;

    @Schema(description = "30天过期人数")
    private Integer expireRecent;

    @Schema(description = "30天新增")
    private Integer twentyDaysAdd;

    @Schema(description = "3代充提差")
    private BigDecimal threeDifference;

    @Schema(description = "团队充提差")
    private BigDecimal teamDifference;

    @Schema(description = "团队待审核提现")
    private BigDecimal teamWithdrawalAuditing;

    @Schema(description = "团123复冲金额")
    private BigDecimal rechargeAmount;

    @Schema(description = "团123代提现金额")
    private BigDecimal withdrawalAmount;

    @Schema(description = "团复冲金额")
    private BigDecimal teamRechargeAmount;

    @Schema(description = "团代提现金额")
    private BigDecimal teamWithdrawalAmount;

    @Schema(description = "团123已过期数")
    private Integer threeExpireNumber;

    @Schema(description = "团已过期数")
    private Integer expireNumber;

    @Schema(description = "首充日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime firstCharge;

    @Schema(description = "首冲天数")
    private Integer firstChargeDay;

    @Schema(description = "提现次数")
    private Integer withdrawalTimes;

    @Schema(description = "注册ip")
    private String registerIp;

    @Schema(description = "同注册IP数")
    private Integer sameRegisterIpNum;

    @Schema(description = "同活跃IP数")
    private String sameActiveIpNum;

    @Schema(description = "充提差额")
    private BigDecimal difference;

    @Schema(description = "申请时间")
    private Long createTime;

    @Schema(description = "审核时间")
    private Long auditTime;

    @Schema(description = "审核状态")
    private Integer status;

    @Schema(description = "发放状态")
    private Integer remitStatus;

    @Schema(description = "上级Id")
    private String superiorId;

    @Schema(description = "上级账号")
    private String superior;

    @Schema(description = "上级账号")
    private String superiorName;

    @Schema(description = "操作人")
    private String operator;

    @Schema(description = "订单号")
    private String orderNo;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "用户名")
    private String userName;

    @Schema(description = "资料备注")
    private String profileRemake;

    @Schema(description = "提现备注")
    private String withdrawalRemake;

    @Schema(description = "提现地址")
    private String withdrawalsAddress;

    @Schema(description = "到账金额")
    private BigDecimal arriveAmount;

    @Schema(description = "提现时间(小时)")
    private Double withdrawalTime;

    @Schema(description = "国家")
    private String country;

    @Schema(description = "提现方式(0银行卡,1usdt,2BIT)")
    private Byte paymentMethod;

    @Schema(description = "提现通道")
    private String withdrawalChannel;
}
